/**
 * 数字范围
 * @param {*} r 范围对象，包含min, max和message属性
 * @param {*} v 当前值
 * @param {*} cb 错误回调函数
 * @returns
 */
export function numberRangeValidator(r, v, cb) {
  if (v === null || v === undefined || v === '') {
    cb()
    return
  }
  var min = r.min
  var max = r.max
  var message = r.message
  let errCount = 0
  if (min != null && min != undefined && v < min) errCount++
  if (max != null && max != undefined && v > max) errCount++
  if (errCount > 0) {
    if (!message) {
      message = `值必须`
      if (min != null && min != undefined && max != null && max != undefined) {
        message = `值范围:${min}~${max}`
      } else if (min != null && min != undefined) {
        message += `大于${min}`
      } else if (max != null && max != undefined) {
        message += `小于${max}`
      }
      r.message = message
    }
    cb(new Error(message))
  } else cb()
}

/**
 * 检查正整数
 * @param {*} rule 规则对象
 * @param {*} value 当前值
 * @param {*} callback 错误回调函数
 */
export function checkPsitiveInteger(rule, value, callback) {
  var regx = /^[0-9]+$/
  if (value != null && value != undefined && value != '' && !regx.test(value.toString())) {
    callback(new Error('请输入正整数！'))
  } else {
    callback()
  }
}
